package com.ylzr.SpringTest;

import com.ylzr.service.UserService;

import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class SpringTest01 {

    /**
     * 依赖注入 它是spring框架核心ioc的具体实现
     * 通过spring容器内部 将UserDao注入给UserService
     * UserService内部需要UserDao
     * 业务层 Service 持久层 Dao
     * 将UserDao注入给UserService通过依赖注入的方式  1.构造方法 2.set方法
     * 通过UserService调用UserDao
     */
    @Test
    public void test01() {
        ApplicationContext context = new ClassPathXmlApplicationContext("ylzrApp.xml");
        UserService userService = (UserService) context.getBean("userService");
        userService.ServiceSaySave("引用对象数据类型");
    }
    /**
     * Bean的依赖注入的数据类型
     * 普通数据类型
     * 引用数据类型 bean的引用注入 UserDao注给UserService是对象引用的注入
     * 集合数据类型
     */
    @Test
    public void test02() {//通过set方法注入
        ApplicationContext context = new ClassPathXmlApplicationContext("ylzrApp.xml");
        UserService userService = (UserService) context.getBean("userService");
//        UserService bean = context.getBean(UserService.class);与上一行意思相同 这个是通过类获取
        userService.ServiceSaySave("普通数据类型和集合数据类型");
    }

}
